home *** CD-ROM | disk | FTP | other *** search
Wrap
/* File: QuickTimeConferencing.h Copyright: © 1984-1994 by Apple Computer, Inc. All rights reserved. Warning: *** APPLE INTERNAL USE ONLY *** This file may contain unreleased API's Version: Built by: anonymous From: QuickTimeConferencing.i, revision 13, dated 4/19/95 With Interfacer: 1.1d8 Bugs: Report bugs to Radar component “System Interfaces”, “Latest” List the version information (from above) in the Problem Description. */ #ifndef __QUICKTIMECONFERENCING__ #define __QUICKTIMECONFERENCING__ #ifndef __MEMORY__ #include <Memory.h> #endif /* #include <Types.h> */ /* #include <ConditionalMacros.h> */ /* #include <MixedMode.h> */ /* #include <Traps.h> */ #ifndef __COMPONENTS__ #include <Components.h> #endif #ifndef __MOVIES__ #include <Movies.h> #endif /* #include <QuickDraw.h> */ /* #include <QuickdrawText.h> */ /* #include <IntlResources.h> */ /* #include <Aliases.h> */ /* #include <AppleTalk.h> */ /* #include <OSUtils.h> */ /* #include <Files.h> */ /* #include <Events.h> */ /* #include <Menus.h> */ /* #include <ImageCompression.h> */ /* #include <QDOffscreen.h> */ /* #include <Errors.h> */ /* #include <StandardFile.h> */ /* #include <Dialogs.h> */ /* #include <Windows.h> */ /* #include <Controls.h> */ /* #include <TextEdit.h> */ #ifdef __cplusplus extern "C" { #endif #if GENERATINGPOWERPC #pragma options align=mac68k #endif #ifdef __CFM68K__ #pragma lib_export on #endif enum { gestaltQuickTimeConferencing = 'mtlk' }; /*----------------------------------------- QuickTime Conferencing component types -----------------------------------------*/ enum { kMTBrowserType = 'brsr', kMTConferenceType = 'conf', kMTControllerType = 'mtcn', kMTFlowControlType = 'flow', kMTIdlerType = 'cabg', kMTMemoryType = 'bufl', kMTNetworkType = 'ntwk', kMTRecorderType = 'recd', kMTSinkStreamDirectorType = 'sksd', kMTSourceStreamDirectorType = 'srsd', kMTPlayerType = 'sply', kMTTransportType = 'tran' }; /*----------------------------------------- QuickTime Conferencing component subtypes -----------------------------------------*/ enum { kMTMovieTalkSubType = 'mtlk', kMTAOCESubType = 'aoce', kMTAppleTalkSubType = 'atlk', kMTTCPIPSubType = 'tcpi', kMTATMulticastSubType = 'atmc', kMTIPMulticastSubType = 'ipmc', kMTISDNSubType = 'isdn' }; enum { kMTGrabberSubType = 'barg', kMTPlayerSubType = kMTPlayerType, kMTMovieSubType = MovieFileType, kMTSoundSubType = SoundMediaType, kMTVideoSubType = VideoMediaType }; /*----------------------------------------- QuickTime Conferencing component flags -----------------------------------------*/ enum { kMTCanDoMulticastFlag = 0x0000001, kMTCanDoPointToPointFlag = 0x0000002, kMTCanDoIsochronousFlag = 0x0000004, kMTCanDoVariableRateFlag = 0x0000008, kMTNoNetworkComponentFlag = 0x0000010 }; /*----------------------------------------- QuickTime Conferencing constants -----------------------------------------*/ enum { kMTVariableLengthArray = 1 }; /*----------------------------------------- QuickTime Conferencing error codes -----------------------------------------*/ enum { mtKilledErr = -7741, mtTimeoutErr = -7742, mtNoListenersErr = -7743, mtWrongVersionErr = -7744, mtModeErr = -7745, mtNotDetachableErr = -7746, mtUnsupportedMessageErr = -7747, mtNoSNMPAgentErr = -7748, mtPendingAsyncCallErr = -7860, mtInvalidStreamIDErr = -7869, mtNoActiveStreamsErr = -7873, mtCodecsIncompatibleErr = -7875, mtNegotiationTimedOutErr = -7876, mtNegotiationInterruptedErr = -7877, mtNegotiationFailedErr = -7878, mtChunkIncompleteErr = -7881, mtChunkTimedOutErr = -7883, mtStreamDisabledErr = -7884, mtVoxSuppressedErr = -7885, mtRenegotiatedErr = -7886, mtConfigurationErr = -7891, mtUnsupportedNetworkErr = -7892, mtConnectionFailedErr = -7895, mtConnectionRefusedErr = -7896, mtNoTransportErr = -7910, mtIncompatibleStateErr = -7962, mtOutOfResourcesErr = -7963, mtOperationAbandonedErr = -7964, mtDuplicateNameErr = -7971, mtNameNotFoundErr = -7972, mtBadEndPointErr = -7980, mtInvalidDataLengthErr = -7981, mtMessageNotHandledErr = -7990, mtMediaNotHandledErr = -7991, mtInvalidMessageSizeErr = -7992, mtInvalidMessageTypeErr = -7994, mtInvalidAddressErr = -7995, mtNoMediaComponentErr = -8000 }; /*----------------------------------------- QuickTime Conferencing typedefs -----------------------------------------*/ typedef ComponentInstance MTTransportComponent; typedef ComponentInstance MTNetworkComponent; typedef ComponentInstance MTBrowserComponent; typedef ComponentInstance MTDirectorComponent; typedef ComponentInstance MTPlayerComponent; typedef ComponentInstance MTFlowControlComponent; typedef ComponentInstance MTRecorderComponent; typedef ComponentInstance MTControllerComponent; typedef ComponentInstance MTConferenceComponent; typedef pascal void (*MTIdlerProcPtr)(long refcon); #if GENERATINGCFM typedef UniversalProcPtr MTIdlerUPP; #else typedef MTIdlerProcPtr MTIdlerUPP; #endif enum { uppMTIdlerProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) }; #if GENERATINGCFM #define NewMTIdlerProc(userRoutine) \ (MTIdlerUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTIdlerProcInfo, GetCurrentArchitecture()) #else #define NewMTIdlerProc(userRoutine) \ ((MTIdlerUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTIdlerProc(userRoutine, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTIdlerProcInfo, (refcon)) #else #define CallMTIdlerProc(userRoutine, refcon) \ (*(userRoutine))((refcon)) #endif enum { kMTIdlerGimmeTimeSelect = 1 }; /*----------------------------------------- Idler prototypes -----------------------------------------*/ extern pascal ComponentResult MTIdlerGimmeTime(ComponentInstance ic, long interval, MTIdlerUPP proc, long refcon) FIVEWORDINLINE(0x2F3C, 12, 1, 0x7000, 0xA82A); /*----------------------------------------- Memory call back functions -----------------------------------------*/ typedef pascal long (*MTMemoryGZProcPtr)(long refcon, Size cbNeeded); #if GENERATINGCFM typedef UniversalProcPtr MTMemoryGZUPP; #else typedef MTMemoryGZProcPtr MTMemoryGZUPP; #endif enum { uppMTMemoryGZProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(long))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Size))) }; #if GENERATINGCFM #define NewMTMemoryGZProc(userRoutine) \ (MTMemoryGZUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTMemoryGZProcInfo, GetCurrentArchitecture()) #else #define NewMTMemoryGZProc(userRoutine) \ ((MTMemoryGZUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTMemoryGZProc(userRoutine, refcon, cbNeeded) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTMemoryGZProcInfo, (refcon), (cbNeeded)) #else #define CallMTMemoryGZProc(userRoutine, refcon, cbNeeded) \ (*(userRoutine))((refcon), (cbNeeded)) #endif #if !GENERATINGCFM #pragma parameter __D0 MTMemoryGetInstance(__A0) #endif extern pascal ComponentInstance MTMemoryGetInstance(Ptr chunk) TWOWORDINLINE(0x2028, 0xFFFC); /*----------------------------------------- Memory selectors -----------------------------------------*/ enum { kMTMemoryInitSelect = 1, kMTMemoryGetOneChunkSelect = 2, kMTMemoryPutOneChunkSelect = 3, kMTMemorySetGrowZoneProcSelect = 4 }; /*----------------------------------------- Memory prototypes -----------------------------------------*/ extern pascal ComponentResult MTMemoryInit(ComponentInstance mc, long extraBytes) FIVEWORDINLINE(0x2F3C, 4, 1, 0x7000, 0xA82A); extern pascal Ptr MTMemoryGetOneChunk(ComponentInstance mc, long size, short memSafe) FIVEWORDINLINE(0x2F3C, 6, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTMemoryPutOneChunk(ComponentInstance mc, Ptr buffer) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTMemorySetGrowZoneProc(ComponentInstance mc, MTMemoryGZUPP proc, long refcon) FIVEWORDINLINE(0x2F3C, 8, 4, 0x7000, 0xA82A); typedef OSType MTStandardID; typedef UInt32 MTMessageSize; struct MTMessageHeader { MTStandardID msgType; /* standard identifier for each message */ MTMessageSize msgSize; /* size of entire message */ }; typedef struct MTMessageHeader MTMessageHeader, *MTMessagePtr; /*----------------------------------------- Transport event types -----------------------------------------*/ enum { mtTransportFailEvent = 0x0001, mtTransportCloseEvent = 0x0002, mtTransportOfflineEvent = 0x0004, mtTransportOnlineEvent = 0x0008 }; typedef UInt32 MTTransportEventType; /*----------------------------------------- Transport call back functions -----------------------------------------*/ typedef pascal OSErr (*MTMessageProcPtr)(MTMessageHeader *message, long refCon); typedef pascal OSErr (*MTMediaProcPtr)(struct MTStreamChunkRecord *chunk); typedef pascal void (*MTCompletionProcPtr)(ComponentResult err, long refCon); typedef pascal void (*MTNotificationProcPtr)(MTTransportComponent c, MTTransportEventType event, long refCon); typedef pascal void (*MTReleaseProcPtr)(struct MTStreamChunkRecord *chunk); #if GENERATINGCFM typedef UniversalProcPtr MTMessageUPP; typedef UniversalProcPtr MTMediaUPP; typedef UniversalProcPtr MTCompletionUPP; typedef UniversalProcPtr MTNotificationUPP; typedef UniversalProcPtr MTReleaseUPP; #else typedef MTMessageProcPtr MTMessageUPP; typedef MTMediaProcPtr MTMediaUPP; typedef MTCompletionProcPtr MTCompletionUPP; typedef MTNotificationProcPtr MTNotificationUPP; typedef MTReleaseProcPtr MTReleaseUPP; #endif enum { uppMTMessageProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTMessageHeader*))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))), uppMTMediaProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(struct MTStreamChunkRecord*))), uppMTCompletionProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ComponentResult))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))), uppMTNotificationProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTTransportComponent))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(MTTransportEventType))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))), uppMTReleaseProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(struct MTStreamChunkRecord*))) }; #if GENERATINGCFM #define NewMTMessageProc(userRoutine) \ (MTMessageUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTMessageProcInfo, GetCurrentArchitecture()) #define NewMTMediaProc(userRoutine) \ (MTMediaUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTMediaProcInfo, GetCurrentArchitecture()) #define NewMTCompletionProc(userRoutine) \ (MTCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTCompletionProcInfo, GetCurrentArchitecture()) #define NewMTNotificationProc(userRoutine) \ (MTNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTNotificationProcInfo, GetCurrentArchitecture()) #define NewMTReleaseProc(userRoutine) \ (MTReleaseUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTReleaseProcInfo, GetCurrentArchitecture()) #else #define NewMTMessageProc(userRoutine) \ ((MTMessageUPP) (userRoutine)) #define NewMTMediaProc(userRoutine) \ ((MTMediaUPP) (userRoutine)) #define NewMTCompletionProc(userRoutine) \ ((MTCompletionUPP) (userRoutine)) #define NewMTNotificationProc(userRoutine) \ ((MTNotificationUPP) (userRoutine)) #define NewMTReleaseProc(userRoutine) \ ((MTReleaseUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTMessageProc(userRoutine, message, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTMessageProcInfo, (message), (refCon)) #define CallMTMediaProc(userRoutine, chunk) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTMediaProcInfo, (chunk)) #define CallMTCompletionProc(userRoutine, err, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTCompletionProcInfo, (err), (refCon)) #define CallMTNotificationProc(userRoutine, c, event, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTNotificationProcInfo, (c), (event), (refCon)) #define CallMTReleaseProc(userRoutine, chunk) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTReleaseProcInfo, (chunk)) #else #define CallMTMessageProc(userRoutine, message, refCon) \ (*(userRoutine))((message), (refCon)) #define CallMTMediaProc(userRoutine, chunk) \ (*(userRoutine))((chunk)) #define CallMTCompletionProc(userRoutine, err, refCon) \ (*(userRoutine))((err), (refCon)) #define CallMTNotificationProc(userRoutine, c, event, refCon) \ (*(userRoutine))((c), (event), (refCon)) #define CallMTReleaseProc(userRoutine, chunk) \ (*(userRoutine))((chunk)) #endif typedef UInt32 MTChunkSize; typedef CompTimeValue MTChunkTime; typedef OSType MTStreamType; typedef UInt32 MTStreamReference; typedef UInt16 MTStreamID; typedef UInt32 MTStreamOptions; typedef UInt32 MTStreamCount; typedef UInt8 MTSequenceNum; typedef UInt32 MTBitsPerSecond; typedef UInt32 MTReservationID; typedef UInt32 MTChannel; enum { kMTAllStreams = 0 }; enum { mtChunkPrioritySound = 0x0800, mtChunkPriorityMedium = 0x0400, mtChunkPriorityVideo = 0x0100, mtChunkPriorityKeyFrame = 0x0001 }; typedef UInt16 MTChunkPriority; struct MTStreamChunkRecord { Byte *chunkPtr; MTChunkSize chunkSize; MTChunkTime chunkTime; MTChunkPriority chunkPriority; MTStreamID chunkStreamID; ComponentResult chunkError; long chunkRefCon; UInt32 chunkReserved; long chunkTimePlayed; MTReleaseUPP chunkReleaseProcCallback; long chunkPrivate; MTStreamOptions chunkStreamOptions; UInt8 chunkReserved2; MTSequenceNum chunkFrameNumber; UInt16 chunkReserved3; }; typedef struct MTStreamChunkRecord MTStreamChunkRecord, *MTStreamChunkRecordPtr; struct MTStreamPerformance { UInt32 numPacketsReceived; UInt32 numPacketsLost; UInt32 numPacketsSent; UInt32 numBytesReceived; UInt32 numBytesSent; }; typedef struct MTStreamPerformance MTStreamPerformance; enum { kMTReserveType = 'mtrs' }; typedef OSType MTReserveType; /* Request set Request get Release set Release get*/ struct MTReservation { MTReserveType flowSpecType; /* kMTReserveType kMTReserveType kMTReserveType kMTReserveType*/ MTBitsPerSecond bandwidth; /* requested remaining not used remaining*/ MTReservationID identity; /* not used for Release from Request not used */ MTChannel channel; /* not used for SendMedia not used not used*/ }; typedef struct MTReservation MTReservation, *MTReservationPtr; /*----------------------------------------- Transport name and address sizes -----------------------------------------*/ enum { kMTMaxAddressSize = 256, kMTMaxNameSize = 248, kMTMaxEmailAddressSize = 1832, /* should hold a PowerTalk packed MailRecipient */ kMTMaxDisplayNameSize = 124 }; /*----------------------------------------- Transport independent address -----------------------------------------*/ struct MTAddress { OSType transportType; OSType networkType; Byte networkAddress[kMTMaxAddressSize]; }; typedef struct MTAddress MTAddress, *MTAddressPtr; /*----------------------------------------- Transport independent name -----------------------------------------*/ struct MTName { OSType transportType; OSType networkType; Byte networkName[248]; /* kMTMaxNameSize (Interfacer warning fix!) */ struct { short charSet; short length; Byte name[124]; /* kMTMaxDisplayNameSize (Interfacer warning fix!) */ } displayName; /* in RString format */ Byte entityInfo[kMTMaxEmailAddressSize]; }; typedef struct MTName MTName, *MTNamePtr; /*----------------------------------------- Transport status types -----------------------------------------*/ enum { mtTransportErrorStatus = -2, mtTransportFailedStatus = -1, mtTransportClosedStatus = 0, mtTransportOpenedStatus = 1, mtTransportCalledStatus = 2, mtTransportOpenPendingStatus = 3, mtTransportListenPendingStatus = 4, mtTransportAnswerPendingStatus = 5, mtTransportClosePendingStatus = 6 }; typedef SInt32 MTTransportStatusType; /*----------------------------------------- Transport/Network information -----------------------------------------*/ enum { mtNetworkAttachedSelector = 'ntwk', mtPayloadSizeSelector = 'pyld', mtFlowBandwidthSelector = 'fbps', mtFlowControlSelector = 'flow', mtIsBidirectionalSelector = 'bdir', mtIsMulticastSelector = 'mcst', mtIsUnsegmentedSelector = 'unsg', mtHasReservationSelector = 'resv', mtControlSizeSelector = 'csiz', mtMediaSizeSelector = 'msiz', mtMulticastTypeSelector = 'mtyp', mtUnicastTypeSelector = 'utyp' }; typedef OSType MTInfoSelector; /*----------------------------------------- Transport address types -----------------------------------------*/ enum { mtTransportRemoteMediaAddress = 1, mtTransportRemoteControlAddress = 2, mtTransportLocalMediaAddress = 3, mtTransportLocalControlAddress = 4, mtTransportLocalListenerAddress = 5 }; typedef SInt16 MTTransportAddressType; /*----------------------------------------- Transport selectors -----------------------------------------*/ enum { kMTTransportListenSelect = 1, kMTTransportAnswerSelect = 2, kMTTransportCallSelect = 3, kMTTransportDisconnectSelect = 4, kMTTransportSetNotificationProcSelect = 5, kMTTransportGetNotificationProcSelect = 6, kMTTransportSendMessageSelect = 7, kMTTransportSendMediaDataSelect = 8, kMTTransportSetMediaDataProcSelect = 9, kMTTransportSetMessageProcSelect = 10, kMTTransportGetMessageProcSelect = 11, kMTTransportGetReleaseProcSelect = 12, kMTTransportNewMediaStreamSelect = 13, kMTTransportDisposeMediaStreamSelect = 14, kMTTransportAttachMediaStreamSelect = 15, kMTTransportEnableStreamSelect = 16, kMTTransportIsStreamEnabledSelect = 17, kMTTransportGetStreamPerformanceSelect = 18, kMTTransportRegisterNameSelect = 19, kMTTransportRemoveNameSelect = 20, kMTTransportLookupNameSelect = 21, kMTTransportGetLocalNameSelect = 22, kMTTransportGetStatusSelect = 23, kMTTransportGetInfoSelect = 24, kMTTransportGetAddressSelect = 25 }; /*----------------------------------------- Transport prototypes -----------------------------------------*/ /*----------------------------------------- Transport call management -----------------------------------------*/ extern pascal ComponentResult MTTransportListen(MTTransportComponent c, MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportAnswer(MTTransportComponent c, const MTAddress *remoteAddr, MTTransportComponent listener, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 18, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportCall(MTTransportComponent c, const MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportDisconnect(MTTransportComponent c, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportSetNotificationProc(MTTransportComponent c, MTNotificationUPP notify, long refCon) FIVEWORDINLINE(0x2F3C, 8, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetNotificationProc(MTTransportComponent c, MTNotificationUPP *notify, long *refCon) FIVEWORDINLINE(0x2F3C, 8, 6, 0x7000, 0xA82A); /*----------------------------------------- Transport media and control data -----------------------------------------*/ extern pascal ComponentResult MTTransportSendMessage(MTTransportComponent c, const MTMessageHeader *message, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportSendMediaData(MTTransportComponent c, const MTStreamChunkRecord *chunk, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 8, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportSetMediaDataProc(MTTransportComponent c, MTMediaUPP proc, long refCon) FIVEWORDINLINE(0x2F3C, 8, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportSetMessageProc(MTTransportComponent c, MTMessageUPP proc, long refCon) FIVEWORDINLINE(0x2F3C, 8, 10, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetMessageProc(MTTransportComponent c, MTMessageUPP *proc, long *refCon) FIVEWORDINLINE(0x2F3C, 8, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetReleaseProc(MTTransportComponent c, MTReleaseUPP *proc) FIVEWORDINLINE(0x2F3C, 4, 12, 0x7000, 0xA82A); /*----------------------------------------- Transport stream management -----------------------------------------*/ extern pascal ComponentResult MTTransportNewMediaStream(MTTransportComponent c, MTStreamID *stream, Boolean enable, MTReservationPtr resources) FIVEWORDINLINE(0x2F3C, 10, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportDisposeMediaStream(MTTransportComponent c, MTStreamID id) FIVEWORDINLINE(0x2F3C, 2, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportAttachMediaStream(MTTransportComponent c, MTStreamID id, Boolean enable) FIVEWORDINLINE(0x2F3C, 4, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportEnableStream(MTTransportComponent c, MTStreamID id, Boolean enable) FIVEWORDINLINE(0x2F3C, 4, 16, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportIsStreamEnabled(MTTransportComponent c, MTStreamID id, Boolean *enabled) FIVEWORDINLINE(0x2F3C, 6, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetStreamPerformance(MTTransportComponent c, MTStreamID id, MTStreamPerformance *performance) FIVEWORDINLINE(0x2F3C, 6, 18, 0x7000, 0xA82A); /*----------------------------------------- Transport name services -----------------------------------------*/ extern pascal ComponentResult MTTransportRegisterName(MTTransportComponent c, OSType networkType, ConstStr255Param name, ConstStr255Param serviceType, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 22, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportRemoveName(MTTransportComponent c, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportLookupName(MTTransportComponent c, const MTName *remoteName, MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 18, 21, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetLocalName(MTTransportComponent c, MTName *localName) FIVEWORDINLINE(0x2F3C, 4, 22, 0x7000, 0xA82A); /*----------------------------------------- Transport information -----------------------------------------*/ extern pascal ComponentResult MTTransportGetStatus(MTTransportComponent c, MTTransportStatusType *status) FIVEWORDINLINE(0x2F3C, 4, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetInfo(MTTransportComponent c, MTInfoSelector whichInfo, long *result) FIVEWORDINLINE(0x2F3C, 8, 24, 0x7000, 0xA82A); extern pascal ComponentResult MTTransportGetAddress(MTTransportComponent c, MTTransportAddressType addressType, MTAddress *address) FIVEWORDINLINE(0x2F3C, 6, 25, 0x7000, 0xA82A); typedef UInt8 MTNetworkPriority; enum { kMTRcvBlockStartMask = 0x0001, kMTRcvBlockCompleteMask = 0x0002, kMTRcvBlockGetBufferMask = 0x0004, kMTRcvBlockInterruptMask = 0x0008 }; typedef UInt32 MTRcvBlockFlags; struct MTRcvBlock { UInt32 refcon; UInt32 size; MTRcvBlockFlags flags; ComponentResult error; Byte *header; Byte *buffer; MTChannel channel; }; typedef struct MTRcvBlock MTRcvBlock, *MTRcvBlockPtr; enum { kMTOpenTransportType = 1, /* pass straight through to open transport*/ kMTRequestReservationType = 3, /* request resource reserveation*/ kMTReleaseReservationType = 4 /* release resource reserveation*/ }; typedef UInt32 MTOptionType; typedef UInt32 MTOptionFlags; struct MTOptions { OSType networkType; MTOptionFlags flags; UInt16 maxlen; UInt16 length; Byte *buffer; }; typedef struct MTOptions MTOptions, *MTOptionsPtr; struct MTBlock { Byte *data; UInt16 maxLength; UInt16 length; UInt16 offset; UInt16 count; }; typedef struct MTBlock MTBlock, *MTBlockPtr; struct MTSegment { struct MTSegment *nextSegment; MTBlockPtr thisBlock; }; typedef struct MTSegment MTSegment, *MTSegmentPtr; enum { mtBufferPendingMask = 0x0001 }; typedef UInt32 MTBufferFlags; struct MTBuffer { struct MTBuffer *nextBuffer; MTSegmentPtr firstSegment; MTBufferFlags flags; ComponentResult error; UInt8 reserved1; MTNetworkPriority priority; UInt16 reserved2; MTChannel channel; UInt32 reserved3; UInt32 reserved4; }; typedef struct MTBuffer MTBuffer, *MTBufferPtr; enum { kMTNetworkNullEvent = 0x0000, kMTNetworkFailEvent = 0x0001, kMTNetworkCloseEvent = 0x0002, kMTNetworkOfflineEvent = 0x0004, kMTNetworkOnlineEvent = 0x0008 }; typedef UInt32 MTNetworkEventType; /*----------------------------------------- Network call back functions -----------------------------------------*/ /* The following function is not type pascal, it is called from low level code */ typedef Byte *(*MTReceiveMediaProcPtr)(MTRcvBlock *rbp); typedef pascal void (*MTReceiveProcPtr)(const MTRcvBlock *rbp); typedef pascal void (*MTNotifyProcPtr)(MTNetworkEventType event, long refCon); #if GENERATINGCFM typedef UniversalProcPtr MTReceiveMediaUPP; typedef UniversalProcPtr MTReceiveUPP; typedef UniversalProcPtr MTNotifyUPP; #else typedef MTReceiveMediaProcPtr MTReceiveMediaUPP; typedef MTReceiveProcPtr MTReceiveUPP; typedef MTNotifyProcPtr MTNotifyUPP; #endif enum { uppMTReceiveMediaProcInfo = kCStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Byte*))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTRcvBlock*))), uppMTReceiveProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTRcvBlock*))), uppMTNotifyProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTNetworkEventType))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) }; #if GENERATINGCFM #define NewMTReceiveMediaProc(userRoutine) \ (MTReceiveMediaUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTReceiveMediaProcInfo, GetCurrentArchitecture()) #define NewMTReceiveProc(userRoutine) \ (MTReceiveUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTReceiveProcInfo, GetCurrentArchitecture()) #define NewMTNotifyProc(userRoutine) \ (MTNotifyUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTNotifyProcInfo, GetCurrentArchitecture()) #else #define NewMTReceiveMediaProc(userRoutine) \ ((MTReceiveMediaUPP) (userRoutine)) #define NewMTReceiveProc(userRoutine) \ ((MTReceiveUPP) (userRoutine)) #define NewMTNotifyProc(userRoutine) \ ((MTNotifyUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTReceiveMediaProc(userRoutine, rbp) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTReceiveMediaProcInfo, (rbp)) #define CallMTReceiveProc(userRoutine, rbp) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTReceiveProcInfo, (rbp)) #define CallMTNotifyProc(userRoutine, event, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTNotifyProcInfo, (event), (refCon)) #else #define CallMTReceiveMediaProc(userRoutine, rbp) \ (*(userRoutine))((rbp)) #define CallMTReceiveProc(userRoutine, rbp) \ (*(userRoutine))((rbp)) #define CallMTNotifyProc(userRoutine, event, refCon) \ (*(userRoutine))((event), (refCon)) #endif enum { kMTNetworkGetInfoSelect = 1, kMTNetworkOptionsSelect = 2, kMTNetworkBindLocalMediaSelect = 3, kMTNetworkUnbindLocalMediaSelect = 4, kMTNetworkBindRemoteMediaSelect = 5, kMTNetworkUnbindRemoteMediaSelect = 6, kMTNetworkSendMediaSelect = 7, kMTNetworkSetReceiveMediaProcSelect = 8, kMTNetworkBindListenerSelect = 9, kMTNetworkUnbindListenerSelect = 10, kMTNetworkBindCallerSelect = 11, kMTNetworkUnbindCallerSelect = 12, kMTNetworkListenSelect = 13, kMTNetworkAcceptSelect = 14, kMTNetworkConnectSelect = 15, kMTNetworkDisconnectSelect = 16, kMTNetworkSendSelect = 17, kMTNetworkReceiveSelect = 18, kMTNetworkGetNextEventSelect = 19, kMTNetworkSetNotifyProcSelect = 20, kMTNetworkRegisterNameSelect = 21, kMTNetworkRemoveNameSelect = 22, kMTNetworkLookupNameSelect = 23, kMTNetworkExtractNameSelect = 24 }; /*----------------------------------------- Network prototypes -----------------------------------------*/ extern pascal ComponentResult MTNetworkGetInfo(MTNetworkComponent nc, MTInfoSelector whichInfo, long *result) FIVEWORDINLINE(0x2F3C, 8, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkOptions(MTNetworkComponent nc, MTOptionType optionType, const MTOptions *setOpts, MTOptions *getOpts) FIVEWORDINLINE(0x2F3C, 12, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkBindLocalMedia(MTNetworkComponent nc, MTAddress *localAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkUnbindLocalMedia(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkBindRemoteMedia(MTNetworkComponent nc, const MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkUnbindRemoteMedia(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkSendMedia(MTNetworkComponent nc, MTBuffer *buf, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkSetReceiveMediaProc(MTNetworkComponent nc, MTReceiveMediaUPP receiveProc, long refCon, MTMessageSize headerSize) FIVEWORDINLINE(0x2F3C, 12, 8, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkBindListener(MTNetworkComponent nc, MTAddress *localAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkUnbindListener(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 10, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkBindCaller(MTNetworkComponent nc, MTAddress *localAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkUnbindCaller(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 12, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkListen(MTNetworkComponent nc, MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkAccept(MTNetworkComponent nc, const MTAddress *remoteAddr, MTNetworkComponent listener, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 18, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkConnect(MTNetworkComponent nc, const MTAddress *remoteAddr, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkDisconnect(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 16, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkSend(MTNetworkComponent nc, MTBuffer *buf, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkReceive(MTNetworkComponent nc, MTRcvBlock *receiveBlock, Boolean async, MTReceiveUPP receiveProc, long refCon) FIVEWORDINLINE(0x2F3C, 14, 18, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkGetNextEvent(MTNetworkComponent nc, MTNetworkEventType *event, Boolean async, MTNotifyUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkSetNotifyProc(MTNetworkComponent nc, MTNotifyUPP notifyProc, long refCon) FIVEWORDINLINE(0x2F3C, 8, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkRegisterName(MTNetworkComponent nc, ConstStr255Param name, ConstStr255Param serviceType, MTName *localName, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 22, 21, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkRemoveName(MTNetworkComponent nc, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 10, 22, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkLookupName(MTNetworkComponent nc, const MTName *remoteName, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTNetworkExtractName(MTNetworkComponent nc, MTAddress *remoteAddr) FIVEWORDINLINE(0x2F3C, 4, 24, 0x7000, 0xA82A); typedef unsigned char *MTCString; struct MTNameList { UInt32 count; MTName list[kMTVariableLengthArray]; }; typedef struct MTNameList MTNameList, *MTNameListPtr; /*----------------------------------------- Browser constants -----------------------------------------*/ /* * browser item hit defines for modal dialog filter proc's */ enum { kMTBrowserCancelItem = 1000, kMTBrowserOKItem = 1001, kMTBrowserAddItem = 1002 }; enum { kMTNativeBrowserFlag = 0x0002, kMTCanDoModalFlag = 0x0004 }; /*----------------------------------------- Browser error codes -----------------------------------------*/ /* * from Errors.h: * 1. userCanceledErr - user hit cancel button (not really an error) * 2. paramErr - invalid parameter(s) * 3. resNotFound - error getting a resource * 4. unimpErr - umimplemented function * others: * 1. memory errors from MemError() * 2. if PowerTalk Browser: AOCE errors from OCEErrors.h * 3. mtConfigurationErr: AppleTalk turned off (chooser browser) */ /*----------------------------------------- Browser selectors -----------------------------------------*/ enum { kMTBrowserBrowseSelect = 1, kMTBrowserGetSettingsSelect = 2, kMTBrowserSetSettingsSelect = 3 }; /*----------------------------------------- For modal browsers -----------------------------------------*/ extern pascal ComponentResult MTBrowserBrowse(MTBrowserComponent browser, const Point *where, ConstStr255Param prompt, MTCString filterTypes, ModalFilterUPP proc, MTNameListPtr *nameList) FIVEWORDINLINE(0x2F3C, 20, 1, 0x7000, 0xA82A); /*----------------------------------------- For all types of browsers -----------------------------------------*/ extern pascal ComponentResult MTBrowserGetSettings(MTBrowserComponent browser, Handle *prefs) FIVEWORDINLINE(0x2F3C, 4, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTBrowserSetSettings(MTBrowserComponent browser, Handle prefs) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); struct MTStreamDescription { MTStreamType streamType; MTStreamID streamID; MTStreamReference streamReference; TimeScale streamTimeScale; SampleDescription streamSampleDescription; }; typedef struct MTStreamDescription MTStreamDescription, **MTStreamDescriptionHandle; enum { streamHasBounds = 0x00000001, streamHasVolume = 0x00000002, streamHasDiscreteSamples = 0x00000004, streamIsInterruptCapable = 0x00080000 }; typedef UInt32 MTStreamInfo; /* positive values indicates negotiation in progress actions */ /* negative values indicates errors */ /* zero value indicates negotiation completed */ enum { kMTNegotiationCompleted = 0, kMTNegotiateOpenChannel = 1, kMTNegotiateOpenStream = 2, kMTNegotiateAckOpenStream = 3 }; typedef ComponentResult MTNegotiateStateType; /*----------------------------------------- Stream Director call back functions -----------------------------------------*/ typedef pascal ComponentResult (*MTNegotiateProcPtr)(MTNegotiateStateType state, const MTMessageHeader *message, long refCon); #if GENERATINGCFM typedef UniversalProcPtr MTNegotiateUPP; #else typedef MTNegotiateProcPtr MTNegotiateUPP; #endif enum { uppMTNegotiateProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTNegotiateStateType))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(MTMessageHeader*))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) }; #if GENERATINGCFM #define NewMTNegotiateProc(userRoutine) \ (MTNegotiateUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTNegotiateProcInfo, GetCurrentArchitecture()) #else #define NewMTNegotiateProc(userRoutine) \ ((MTNegotiateUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTNegotiateProc(userRoutine, state, message, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTNegotiateProcInfo, (state), (message), (refCon)) #else #define CallMTNegotiateProc(userRoutine, state, message, refCon) \ (*(userRoutine))((state), (message), (refCon)) #endif /*----------------------------------------- Stream Director selectors -----------------------------------------*/ enum { kMTDirectorConnectedSelect = 1, kMTDirectorJoinSelect = 2, kMTDirectorGetNumberOfStreamsSelect = 3, kMTDirectorGetNextStreamSelect = 4, kMTDirectorStreamEnableSelect = 5, kMTDirectorPauseSelect = 6, kMTDirectorIsStreamEnabledSelect = 7, kMTDirectorSetNegotiateProcSelect = 8, kMTDirectorGetNegotiateProcSelect = 9, kMTDirectorChangedStreamFormatsSelect = 10, kMTDirectorSetTransportSelect = 11, kMTDirectorGetTransportSelect = 12, kMTDirectorGetStreamDescriptionSelect = 13, kMTDirectorUpdateSelect = 14, kMTDirectorGetStreamInfoSelect = 15, kMTDirectorSetGWorldSelect = 16, kMTDirectorSetMatrixSelect = 17, kMTDirectorGetMatrixSelect = 18, kMTDirectorSetClipSelect = 19, kMTDirectorGetClipSelect = 20, kMTDirectorGetBoxSelect = 21, kMTDirectorSetFrameRateSelect = 22, kMTDirectorGetFrameRateSelect = 23, kMTDirectorSetMaxFrameRateSelect = 24, kMTDirectorGetMaxFrameRateSelect = 25, kMTDirectorSetRectSelect = 26, kMTDirectorGetRectSelect = 27, kMTDirectorGetPictureSelect = 28, kMTDirectorSetVolumeSelect = 29, kMTDirectorGetVolumeSelect = 30, kMTDirectorSetGainSelect = 31, kMTDirectorGetGainSelect = 32, kMTDirectorSetSoundThresholdSelect = 33, kMTDirectorGetSoundThresholdSelect = 34, kMTDirectorGetMediaComponentSelect = 35, kMTDirectorSetMediaComponentSelect = 36, kMTDirectorGetSoundLevelSelect = 37, kMTDirectorChangedWindowSelect = 38, kMTDirectorSetRecordProcSelect = 39, kMTDirectorGetRecordProcSelect = 40 }; /*----------------------------------------- Stream Director prototypes -----------------------------------------*/ /*----------------------------------------- Stream Director connection functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorConnected(MTDirectorComponent sdc, Boolean connected) FIVEWORDINLINE(0x2F3C, 2, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorJoin(MTDirectorComponent sdc, MTDirectorComponent other) FIVEWORDINLINE(0x2F3C, 4, 2, 0x7000, 0xA82A); /*----------------------------------------- Stream Director stream functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorGetNumberOfStreams(MTDirectorComponent sdc, MTStreamCount *numStreams) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetNextStream(MTDirectorComponent sdc, MTStreamID *stream, MTStreamType *type) FIVEWORDINLINE(0x2F3C, 8, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorStreamEnable(MTDirectorComponent sdc, MTStreamID stream, Boolean enableMode) FIVEWORDINLINE(0x2F3C, 4, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorPause(MTDirectorComponent sdc, Boolean pauseMode) FIVEWORDINLINE(0x2F3C, 2, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorIsStreamEnabled(MTDirectorComponent sdc, MTStreamID stream, Boolean *enableMode) FIVEWORDINLINE(0x2F3C, 6, 7, 0x7000, 0xA82A); /*----------------------------------------- Stream Director negotiation functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorSetNegotiateProc(MTDirectorComponent sdc, MTNegotiateUPP negotiate, long refCon) FIVEWORDINLINE(0x2F3C, 8, 8, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetNegotiateProc(MTDirectorComponent sdc, MTNegotiateUPP *negotiate, long *refCon) FIVEWORDINLINE(0x2F3C, 8, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorChangedStreamFormats(MTDirectorComponent sdc, Boolean finished) FIVEWORDINLINE(0x2F3C, 2, 10, 0x7000, 0xA82A); /*----------------------------------------- Stream Director attach functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorSetTransport(MTDirectorComponent sdc, MTTransportComponent tc) FIVEWORDINLINE(0x2F3C, 4, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetTransport(MTDirectorComponent sdc, MTTransportComponent *tc) FIVEWORDINLINE(0x2F3C, 4, 12, 0x7000, 0xA82A); /*----------------------------------------- Stream Director info functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorGetStreamDescription(MTDirectorComponent sdc, MTStreamID stream, MTStreamDescriptionHandle streamDesc) FIVEWORDINLINE(0x2F3C, 6, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorUpdate(MTDirectorComponent sdc, RgnHandle updateRgn) FIVEWORDINLINE(0x2F3C, 4, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetStreamInfo(MTDirectorComponent sdc, MTStreamID stream, MTStreamInfo *info) FIVEWORDINLINE(0x2F3C, 6, 15, 0x7000, 0xA82A); /*----------------------------------------- Stream Director video functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorSetGWorld(MTDirectorComponent sdc, MTStreamID stream, CGrafPtr gp, GDHandle gd) FIVEWORDINLINE(0x2F3C, 10, 16, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetMatrix(MTDirectorComponent sdc, MTStreamID stream, const MatrixRecord *m) FIVEWORDINLINE(0x2F3C, 6, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetMatrix(MTDirectorComponent sdc, MTStreamID stream, MatrixRecord *m) FIVEWORDINLINE(0x2F3C, 6, 18, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetClip(MTDirectorComponent sdc, MTStreamID stream, RgnHandle theClip) FIVEWORDINLINE(0x2F3C, 6, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetClip(MTDirectorComponent sdc, MTStreamID stream, RgnHandle *theClip) FIVEWORDINLINE(0x2F3C, 6, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetBox(MTDirectorComponent sdc, Rect *box) FIVEWORDINLINE(0x2F3C, 4, 21, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetFrameRate(MTDirectorComponent sdc, MTStreamID stream, Fixed frameRate) FIVEWORDINLINE(0x2F3C, 6, 22, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetFrameRate(MTDirectorComponent sdc, MTStreamID stream, Fixed *frameRate) FIVEWORDINLINE(0x2F3C, 6, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetMaxFrameRate(MTDirectorComponent sdc, MTStreamID stream, Fixed frameRate) FIVEWORDINLINE(0x2F3C, 6, 24, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetMaxFrameRate(MTDirectorComponent sdc, MTStreamID stream, Fixed *frameRate) FIVEWORDINLINE(0x2F3C, 6, 25, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetRect(MTDirectorComponent sdc, MTStreamID stream, const Rect *r) FIVEWORDINLINE(0x2F3C, 6, 26, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetRect(MTDirectorComponent sdc, MTStreamID stream, Rect *r) FIVEWORDINLINE(0x2F3C, 6, 27, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetPicture(MTDirectorComponent sdc, MTStreamID stream, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags) FIVEWORDINLINE(0x2F3C, 16, 28, 0x7000, 0xA82A); /*----------------------------------------- Stream Director sound functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorSetVolume(MTDirectorComponent sdc, MTStreamID stream, short volume) FIVEWORDINLINE(0x2F3C, 4, 29, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetVolume(MTDirectorComponent sdc, MTStreamID stream, short *volume) FIVEWORDINLINE(0x2F3C, 6, 30, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetGain(MTDirectorComponent sdc, MTStreamID stream, short gain) FIVEWORDINLINE(0x2F3C, 4, 31, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetGain(MTDirectorComponent sdc, MTStreamID stream, short *gain) FIVEWORDINLINE(0x2F3C, 6, 32, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetSoundThreshold(MTDirectorComponent sdc, MTStreamID stream, short threshold) FIVEWORDINLINE(0x2F3C, 4, 33, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetSoundThreshold(MTDirectorComponent sdc, MTStreamID stream, short *threshold) FIVEWORDINLINE(0x2F3C, 6, 34, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetMediaComponent(MTDirectorComponent sdc, ComponentInstance *media, OSType *type, OSType *subtype) FIVEWORDINLINE(0x2F3C, 12, 35, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorSetMediaComponent(MTDirectorComponent sdc, ComponentInstance media) FIVEWORDINLINE(0x2F3C, 4, 36, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetSoundLevel(MTDirectorComponent sdc, MTStreamID stream, short *meterlevel) FIVEWORDINLINE(0x2F3C, 6, 37, 0x7000, 0xA82A); /*----------------------------------------- Stream Director windowing functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorChangedWindow(MTDirectorComponent sdc, Boolean changedWindow) FIVEWORDINLINE(0x2F3C, 2, 38, 0x7000, 0xA82A); /*----------------------------------------- Stream Director recording functions -----------------------------------------*/ extern pascal ComponentResult MTDirectorSetRecordProc(MTDirectorComponent sdc, MTMediaUPP proc, long refCon) FIVEWORDINLINE(0x2F3C, 8, 39, 0x7000, 0xA82A); extern pascal ComponentResult MTDirectorGetRecordProc(MTDirectorComponent sdc, MTMediaUPP *proc, long *refCon) FIVEWORDINLINE(0x2F3C, 8, 40, 0x7000, 0xA82A); enum { kMTDisplayUpdateHintMask = 0x00000001 }; typedef long MTPlayerHintFlags; /*----------------------------------------- Stream player selectors -----------------------------------------*/ enum { kMTPlayerInitSelect = 1, kMTPlayerGetStreamDescriptionSelect = 2, kMTPlayerGetPlayerInfoSelect = 3, kMTPlayerPlayStreamSelect = 4, kMTPlayerSetStreamTimeBaseSelect = 5, kMTPlayerGetStreamTimeBaseSelect = 6, kMTPlayerEnableSelect = 7, kMTPlayerIsEnabledSelect = 8, kMTPlayerSetGWorldSelect = 9, kMTPlayerSetClipSelect = 10, kMTPlayerGetClipSelect = 11, kMTPlayerSetRectSelect = 12, kMTPlayerGetRectSelect = 13, kMTPlayerSetMatrixSelect = 14, kMTPlayerGetMatrixSelect = 15, kMTPlayerGetPictureSelect = 16, kMTPlayerSetVolumeSelect = 17, kMTPlayerGetVolumeSelect = 18, kMTPlayerSetSoundBalanceSelect = 19, kMTPlayerGetSoundBalanceSelect = 20, kMTPlayerSetDimensionsSelect = 21, kMTPlayerGetDimensionsSelect = 22, kMTPlayerGetSrcRgnSelect = 23, kMTPlayerSamplesPerSecondSelect = 24, kMTPlayerSetDisplayHintsSelect = 25 }; /*----------------------------------------- Stream player prototypes -----------------------------------------*/ extern pascal ComponentResult MTPlayerInit(MTPlayerComponent spc, MTStreamDescriptionHandle description, MTReleaseUPP proc) FIVEWORDINLINE(0x2F3C, 8, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetStreamDescription(MTPlayerComponent spc, MTStreamDescriptionHandle streamDesc) FIVEWORDINLINE(0x2F3C, 4, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetPlayerInfo(MTPlayerComponent spc, MTStreamInfo *playerFlags) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerPlayStream(MTPlayerComponent spc, MTStreamChunkRecord *chunk) FIVEWORDINLINE(0x2F3C, 4, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetStreamTimeBase(MTPlayerComponent spc, TimeBase timebase) FIVEWORDINLINE(0x2F3C, 4, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetStreamTimeBase(MTPlayerComponent spc, TimeBase *timebase) FIVEWORDINLINE(0x2F3C, 4, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerEnable(MTPlayerComponent spc, Boolean enableMode) FIVEWORDINLINE(0x2F3C, 2, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerIsEnabled(MTPlayerComponent spc, Boolean *enableMode) FIVEWORDINLINE(0x2F3C, 4, 8, 0x7000, 0xA82A); /*----------------------------------------- Stream player video functions -----------------------------------------*/ extern pascal ComponentResult MTPlayerSetGWorld(MTPlayerComponent spc, CGrafPtr gp, GDHandle gd) FIVEWORDINLINE(0x2F3C, 8, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetClip(MTPlayerComponent spc, RgnHandle theClip) FIVEWORDINLINE(0x2F3C, 4, 10, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetClip(MTPlayerComponent spc, RgnHandle *theClip) FIVEWORDINLINE(0x2F3C, 4, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetRect(MTPlayerComponent spc, const Rect *r) FIVEWORDINLINE(0x2F3C, 4, 12, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetRect(MTPlayerComponent spc, Rect *r) FIVEWORDINLINE(0x2F3C, 4, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetMatrix(MTPlayerComponent spc, const MatrixRecord *m) FIVEWORDINLINE(0x2F3C, 4, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetMatrix(MTPlayerComponent spc, MatrixRecord *m) FIVEWORDINLINE(0x2F3C, 4, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetPicture(MTPlayerComponent spc, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags) FIVEWORDINLINE(0x2F3C, 14, 16, 0x7000, 0xA82A); /*----------------------------------------- Stream player sound functions -----------------------------------------*/ extern pascal ComponentResult MTPlayerSetVolume(MTPlayerComponent spc, short volume) FIVEWORDINLINE(0x2F3C, 2, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetVolume(MTPlayerComponent spc, short *volume) FIVEWORDINLINE(0x2F3C, 4, 18, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetSoundBalance(MTPlayerComponent spc, short balance) FIVEWORDINLINE(0x2F3C, 4, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetSoundBalance(MTPlayerComponent spc, short *balance) FIVEWORDINLINE(0x2F3C, 2, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetDimensions(MTPlayerComponent spc, Fixed width, Fixed height) FIVEWORDINLINE(0x2F3C, 8, 21, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetDimensions(MTPlayerComponent spc, Fixed *width, Fixed *height) FIVEWORDINLINE(0x2F3C, 8, 22, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerGetSrcRgn(MTPlayerComponent spc, RgnHandle srcRgn, TimeValue requestTime) FIVEWORDINLINE(0x2F3C, 8, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSamplesPerSecond(MTPlayerComponent spc, Fixed *samplesPerSecond) FIVEWORDINLINE(0x2F3C, 4, 24, 0x7000, 0xA82A); extern pascal ComponentResult MTPlayerSetDisplayHints(MTPlayerComponent spc, MTPlayerHintFlags flags) FIVEWORDINLINE(0x2F3C, 4, 25, 0x7000, 0xA82A); enum { kMTFlowControlReceiver = 1, kMTFlowControlSender = 2 }; typedef short MTFlowControlType; /*----------------------------------------- Flow control selectors -----------------------------------------*/ enum { kMTFlowControlInitSelect = 1, kMTFlowControlEnableSelect = 2, kMTFlowControlIsEnabledSelect = 3, kMTFlowControlAttachTransportSelect = 4, kMTFlowControlAttachPlayerSelect = 5, kMTFlowControlRcvrProcSelect = 6, kMTFlowControlSndrProcSelect = 7, kMTFlowControlSlowDownSelect = 8, kMTFlowControlSpeedUpSelect = 9, kMTFlowControlSetVOXThresholdSelect = 10, kMTFlowControlGetVOXThresholdSelect = 11, kMTFlowControlJoinSelect = 12 }; /*----------------------------------------- Flow control prototypes -----------------------------------------*/ extern pascal ComponentResult MTFlowControlInit(MTFlowControlComponent fcc, MTFlowControlType flowType, MTDirectorComponent owner, MTStreamDescriptionHandle description) FIVEWORDINLINE(0x2F3C, 10, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlEnable(MTFlowControlComponent fcc, Boolean enableMode) FIVEWORDINLINE(0x2F3C, 2, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlIsEnabled(MTFlowControlComponent fcc, Boolean *enableMode) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlAttachTransport(MTFlowControlComponent fcc, MTTransportComponent tc) FIVEWORDINLINE(0x2F3C, 4, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlAttachPlayer(MTFlowControlComponent fcc, MTPlayerComponent spc) FIVEWORDINLINE(0x2F3C, 4, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlRcvrProc(MTFlowControlComponent fcc, MTStreamChunkRecord *chunk) FIVEWORDINLINE(0x2F3C, 4, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlSndrProc(MTFlowControlComponent fcc, const MTStreamChunkRecord *chunk, Boolean async, MTCompletionUPP completion, long refCon) FIVEWORDINLINE(0x2F3C, 14, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlSlowDown(MTFlowControlComponent fcc) FIVEWORDINLINE(0x2F3C, 0, 8, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlSpeedUp(MTFlowControlComponent fcc) FIVEWORDINLINE(0x2F3C, 0, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlSetVOXThreshold(MTFlowControlComponent fcc, short threshold) FIVEWORDINLINE(0x2F3C, 2, 10, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlGetVOXThreshold(MTFlowControlComponent fcc, short *threshold) FIVEWORDINLINE(0x2F3C, 4, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTFlowControlJoin(MTFlowControlComponent fcc, MTFlowControlComponent otherfcc) FIVEWORDINLINE(0x2F3C, 4, 12, 0x7000, 0xA82A); enum { kMTRecorderAddSourceSelect = 1, kMTRecorderDeleteSourceSelect = 2, kMTRecorderGetNextSourceSelect = 3, kMTRecorderSetDataOutputSelect = 4, kMTRecorderGetDataOutputSelect = 5, kMTRecorderStartRecordSelect = 6, kMTRecorderStopRecordSelect = 7, kMTRecorderPauseSelect = 8, kMTRecorderGetPauseSelect = 9, kMTRecorderChangedStreamsSelect = 10, kMTRecorderGetMovieSelect = 11, kMTRecorderSetMaximumRecordTimeSelect = 12, kMTRecorderGetMaximumRecordTimeSelect = 13, kMTRecorderGetStorageSpaceRemainingSelect = 14, kMTRecorderGetTimeRemainingSelect = 15, kMTRecorderGetLastMovieResIDSelect = 16 }; /*----------------------------------------- Recorder prototypes -----------------------------------------*/ /*----------------------------------------- Recorder setup functions -----------------------------------------*/ extern pascal ComponentResult MTRecorderAddSource(MTRecorderComponent rc, MTDirectorComponent sourceInstance) FIVEWORDINLINE(0x2F3C, 4, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderDeleteSource(MTRecorderComponent rc, MTDirectorComponent sourceInstance) FIVEWORDINLINE(0x2F3C, 4, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetNextSource(MTRecorderComponent rc, MTDirectorComponent *sourceInstance) FIVEWORDINLINE(0x2F3C, 4, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderSetDataOutput(MTRecorderComponent rc, const FSSpec *movieFile, long whereFlags) FIVEWORDINLINE(0x2F3C, 0x8, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetDataOutput(MTRecorderComponent rc, FSSpec *movieFile, long *whereFlags) FIVEWORDINLINE(0x2F3C, 0x8, 5, 0x7000, 0xA82A); /*----------------------------------------- Recorder control functions -----------------------------------------*/ extern pascal ComponentResult MTRecorderStartRecord(MTRecorderComponent rc) FIVEWORDINLINE(0x2F3C, 0, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderStopRecord(MTRecorderComponent rc) FIVEWORDINLINE(0x2F3C, 0, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderPause(MTRecorderComponent rc, Boolean pause) FIVEWORDINLINE(0x2F3C, 0x2, 8, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetPause(MTRecorderComponent rc, Boolean *paused) FIVEWORDINLINE(0x2F3C, 0x4, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderChangedStreams(MTRecorderComponent rc, MTDirectorComponent sourceInstance) FIVEWORDINLINE(0x2F3C, 4, 10, 0x7000, 0xA82A); /*----------------------------------------- Recorder info functions -----------------------------------------*/ extern pascal Movie MTRecorderGetMovie(MTRecorderComponent rc) FIVEWORDINLINE(0x2F3C, 0, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderSetMaximumRecordTime(MTRecorderComponent rc, UInt32 ticks) FIVEWORDINLINE(0x2F3C, 0x4, 12, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetMaximumRecordTime(MTRecorderComponent rc, UInt32 *ticks) FIVEWORDINLINE(0x2F3C, 0x4, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetStorageSpaceRemaining(MTRecorderComponent rc, UInt32 *bytes) FIVEWORDINLINE(0x2F3C, 0x4, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetTimeRemaining(MTRecorderComponent rc, UInt32 *ticksLeft) FIVEWORDINLINE(0x2F3C, 0x4, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTRecorderGetLastMovieResID(MTRecorderComponent rc, short *resID) FIVEWORDINLINE(0x2F3C, 0x4, 16, 0x7000, 0xA82A); enum { mtControllerActionDraw = 2, /* param is WindowPtr */ mtControllerActionActivate = 3, /* no param */ mtControllerActionDeactivate = 4, /* no param */ mtControllerActionMouseDown = 5, /* param is pointer to EventRecord */ mtControllerActionKey = 6, /* param is pointer to EventRecord */ mtControllerActionPlay = 8, /* param is Boolean, play = true, stop = false */ mtControllerActionSetVolume = 14, /* param is a short */ mtControllerActionGetVolume = 15, /* param is pointer to a short */ mtControllerActionSetGain = 16, /* param is a short */ mtControllerActionGetGain = 17, /* param is pointer to a short */ mtControllerActionSetGrowBoxBounds = 25, /* param is a Rect */ mtControllerActionControllerSizeChanged = 26, /* param is Boolean*/ mtControllerActionSetKeysEnabled = 32, /* param is Boolean */ mtControllerActionGetKeysEnabled = 33, /* param is pointer to Boolean */ mtControllerActionSetFlags = 38, /* param is long of flags */ mtControllerActionGetFlags = 39, /* param is pointer to a long of flags */ mtControllerActionShowBalloon = 43, /* param is a pointer to a boolean. set to false to stop balloon */ mtControllerActionClick = 45, /* param is pointer to event record. change “what” to nullEvt to kill click */ mtControllerActionSuspend = 46, /* no param */ mtControllerActionResume = 47, /* no param */ mtControllerActionGetDragEnabled = 51, /* param is pointer to Boolean */ mtControllerActionSetDragEnabled = 52, /* param is Boolean */ mtControllerActionStartRecord = 60, /* param is Boolean, start = true, stop = false */ mtControllerActionStreamsChanged = 61, /* param is ComponentResult (OSErr)*/ mtControllerActionSnapshot = 62, /* param is PicHandle to picture */ mtControllerActionSnapshotData = 63, /* param is PicHandle to picture*/ mtControllerActionSetEnableSnapshot = 70, /* param is Boolean */ mtControllerActionSetEnableSound = 71, /* param is Boolean */ mtControllerActionSetEnablePlay = 72, /* param is Boolean */ mtControllerActionSetEnableRecord = 73, /* param is Boolean */ mtControllerActionSetEnableGain = 74, /* param is Boolean */ mtControllerActionGetEnableSnapshot = 75, /* param is Boolean */ mtControllerActionGetEnableSound = 76, /* param is Boolean */ mtControllerActionGetEnablePlay = 77, /* param is Boolean */ mtControllerActionGetEnableRecord = 78, /* param is Boolean */ mtControllerActionGetEnableGain = 79, /* param is Boolean */ mtControllerActionSetShowSnapshot = 80, /* param is Boolean */ mtControllerActionSetShowSound = 81, /* param is Boolean */ mtControllerActionSetShowPlay = 82, /* param is Boolean */ mtControllerActionSetShowRecord = 83, /* param is Boolean */ mtControllerActionSetShowGain = 84, /* param is Boolean */ mtControllerActionGetShowSnapshot = 85, /* param is Boolean */ mtControllerActionGetShowSound = 86, /* param is Boolean */ mtControllerActionGetShowPlay = 87, /* param is Boolean */ mtControllerActionGetShowRecord = 88, /* param is Boolean */ mtControllerActionGetShowGain = 89 /* param is Boolean */ }; typedef short MTControllerActionType; /* flags for MTControllerPositionController */ enum { mtControllerTopLeftChannel = 1 << 0, /* usually centered */ mtControllerScaleChannelToFit = 1 << 1, /* usually only scales down */ mtControllerNotVisible = 1 << 3, /* don't show controller */ mtControllerWithFrame = 1 << 4, /* gimme a frame */ mtControllerPositionDontInvalidate = 1 << 5 /* don't invalidate the region when positioning */ }; /* flags for mtControllerActionSetFlags action */ enum { mtControllerFlagSuppressChannelFrame = 1 << 0, mtControllerFlagSuppressSpeakerButton = 1 << 2, mtControllerFlagsUseWindowPalette = 1 << 3, mtControllerFlagsDontInvalidate = 1 << 4 }; /* flags for MTControllerGetControllerInfo */ enum { mtControllerInfoCopyAvailable = 1 << 2, mtControllerInfoHasSound = 1 << 5, mtControllerInfoIsPlaying = 1 << 6, mtControllerInfoIsRecording = 1 << 7 }; typedef long MTControllerInfoType; /*----------------------------------------- Controller call back functions -----------------------------------------*/ typedef pascal Boolean (*MTControllerActionFilterProcPtr)(MTControllerComponent mtc, MTControllerActionType action, void *params, long refCon); #if GENERATINGCFM typedef UniversalProcPtr MTControllerActionFilterUPP; #else typedef MTControllerActionFilterProcPtr MTControllerActionFilterUPP; #endif enum { uppMTControllerActionFilterProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MTControllerComponent))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(MTControllerActionType))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))) | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))) }; #if GENERATINGCFM #define NewMTControllerActionFilterProc(userRoutine) \ (MTControllerActionFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMTControllerActionFilterProcInfo, GetCurrentArchitecture()) #else #define NewMTControllerActionFilterProc(userRoutine) \ ((MTControllerActionFilterUPP) (userRoutine)) #endif #if GENERATINGCFM #define CallMTControllerActionFilterProc(userRoutine, mtc, action, params, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMTControllerActionFilterProcInfo, (mtc), (action), (params), (refCon)) #else #define CallMTControllerActionFilterProc(userRoutine, mtc, action, params, refCon) \ (*(userRoutine))((mtc), (action), (params), (refCon)) #endif /*----------------------------------------- Controller selectors -----------------------------------------*/ enum { kMTControllerSetStreamDirectorSelect = 1, kMTControllerGetStreamDirectorSelect = 2, kMTControllerRemoveStreamDirectorSelect = 3, kMTControllerIsControllerEventSelect = 4, kMTControllerDoActionSelect = 5, kMTControllerSetControllerAttachedSelect = 6, kMTControllerIsControllerAttachedSelect = 7, kMTControllerSetControllerPortSelect = 8, kMTControllerGetControllerPortSelect = 9, kMTControllerSetVisibleSelect = 10, kMTControllerGetVisibleSelect = 11, kMTControllerSetControllerBoundsRectSelect = 12, kMTControllerGetControllerBoundsRectSelect = 13, kMTControllerGetControllerBoundsRgnSelect = 14, kMTControllerGetWindowRgnSelect = 15, kMTControllerChangedStreamsSelect = 16, kMTControllerNewAttachedControllerSelect = 17, kMTControllerDrawSelect = 18, kMTControllerActivateSelect = 19, kMTControllerKeySelect = 20, kMTControllerClickSelect = 21, kMTControllerSnapshotSelect = 22, kMTControllerPositionControllerSelect = 23, kMTControllerGetControllerInfoSelect = 24, kMTControllerSetClipSelect = 25, kMTControllerGetClipSelect = 26, kMTControllerSetActionFilterSelect = 27 }; /*----------------------------------------- Controller prototypes -----------------------------------------*/ extern pascal ComponentResult MTControllerSetStreamDirector(MTControllerComponent mtc, MTDirectorComponent sd, WindowPtr displayWindow, Point where) FIVEWORDINLINE(0x2F3C, 0xC, 1, 0x7000, 0xA82A); extern pascal MTDirectorComponent MTControllerGetStreamDirector(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 2, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerRemoveStreamDirector(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerIsControllerEvent(MTControllerComponent mtc, const EventRecord *e) FIVEWORDINLINE(0x2F3C, 0x4, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerDoAction(MTControllerComponent mtc, MTControllerActionType action, void *params) FIVEWORDINLINE(0x2F3C, 0x6, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetControllerAttached(MTControllerComponent mtc, Boolean attach) FIVEWORDINLINE(0x2F3C, 0x2, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerIsControllerAttached(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 7, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetControllerPort(MTControllerComponent mtc, CGrafPtr gp) FIVEWORDINLINE(0x2F3C, 0x4, 8, 0x7000, 0xA82A); extern pascal CGrafPtr MTControllerGetControllerPort(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 9, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetVisible(MTControllerComponent mtc, Boolean visible) FIVEWORDINLINE(0x2F3C, 0x2, 10, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerGetVisible(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 11, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetControllerBoundsRect(MTControllerComponent mtc, const Rect *bounds) FIVEWORDINLINE(0x2F3C, 0x4, 12, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerGetControllerBoundsRect(MTControllerComponent mtc, Rect *bounds) FIVEWORDINLINE(0x2F3C, 0x4, 13, 0x7000, 0xA82A); extern pascal RgnHandle MTControllerGetControllerBoundsRgn(MTControllerComponent mtc) FIVEWORDINLINE(0x2F3C, 0, 14, 0x7000, 0xA82A); extern pascal RgnHandle MTControllerGetWindowRgn(MTControllerComponent mtc, WindowPtr w) FIVEWORDINLINE(0x2F3C, 0x4, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerChangedStreams(MTControllerComponent mtc, Boolean finished) FIVEWORDINLINE(0x2F3C, 2, 16, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerNewAttachedController(MTControllerComponent mtc, MTDirectorComponent sd, WindowPtr w, Point where) FIVEWORDINLINE(0x2F3C, 0xC, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerDraw(MTControllerComponent mtc, WindowPtr w) FIVEWORDINLINE(0x2F3C, 0x4, 18, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerActivate(MTControllerComponent mtc, WindowPtr w, Boolean activate) FIVEWORDINLINE(0x2F3C, 0x6, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerKey(MTControllerComponent mtc, char key, long modifiers) FIVEWORDINLINE(0x2F3C, 0x6, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerClick(MTControllerComponent mtc, WindowPtr w, Point where, long when, long modifiers) FIVEWORDINLINE(0x2F3C, 0x10, 21, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSnapshot(MTControllerComponent mtc, PicHandle *picture) FIVEWORDINLINE(0x2F3C, 0x4, 22, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerPositionController(MTControllerComponent mtc, const Rect *imageRect, const Rect *controllerRect, long someFlags) FIVEWORDINLINE(0x2F3C, 0xC, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerGetControllerInfo(MTControllerComponent mtc, MTControllerInfoType *someFlags) FIVEWORDINLINE(0x2F3C, 0x4, 24, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetClip(MTControllerComponent mtc, RgnHandle theClip, RgnHandle imageClip) FIVEWORDINLINE(0x2F3C, 0x8, 25, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerGetClip(MTControllerComponent mtc, RgnHandle *theClip, RgnHandle *imageClip) FIVEWORDINLINE(0x2F3C, 0x8, 26, 0x7000, 0xA82A); extern pascal ComponentResult MTControllerSetActionFilter(MTControllerComponent mtc, MTControllerActionFilterUPP actionFilter, long refCon) FIVEWORDINLINE(0x2F3C, 0x8, 27, 0x7000, 0xA82A); enum { kMTConferenceWindowKind = 621 }; /*----------------------------------------- Conference data types -----------------------------------------*/ typedef unsigned char MTCString32[33], MTCString63[64]; struct MTRString60 { short charSet; /* script code */ short dataLength; Byte body[60]; }; typedef struct MTRString60 MTRString60, *MTRString60Ptr; /* refers to a conference */ typedef long MTConferenceToken; /* refers to an auxiliary source */ typedef long MTAuxiliaryToken; /* refers to a conference member */ typedef long MTConferenceMember; /*----------------------------------------- Conference mode bits -----------------------------------------*/ enum { mtSendMediaModeMask = 0x0001, mtReceiveMediaModeMask = 0x0002, mtShareableModeMask = 0x0004, mtJoinerModeMask = 0x0008, mtDesiredMessagesModeMask = 0x0100, /* only on mtPhoneRingingEvent, mtIncomingCallEvent, and mtMemberJoiningEvent */ mtRequiredMessagesModeMask = 0x0200 /* only on mtPhoneRingingEvent and mtIncomingCallEvent*/ }; typedef UInt16 MTConferenceModeFlags; /*----------------------------------------- Conference prepared bits -----------------------------------------*/ enum { mtGrabVideoPrepMask = 0x00000001, mtGrabAudioPrepMask = 0x00000002, mtGrabOtherPrepMask = 0x00000008, mtAuxiliaryClosePrepMask = 0x00000100, mtMediaSourcePrepMask = 0x00008000, mtEnableSnapshotPrepMask = 0x00100000, mtEnableRecordPrepMask = 0x00200000, mtWindowVisiblePrepMask = 0x01000000, mtControllerVisiblePrepMask = 0x02000000, mtNoAutoResizePrepMask = 0x04000000, mtAutoPositionPrepMask = 0x08000000 }; typedef UInt32 MTConferencePrepFlags; /*----------------------------------------- Conference event reasons -----------------------------------------*/ /* what err who bonus reserved surprise */ enum { mtListenerStatusEvent = 11, /* status -- network-type transport-type -- */ mtIncomingCallEvent = 12, /* -- MTConferenceMember cm-mode-bits remote-timeout -- */ mtMemberJoiningEvent = 13, /* -- MTConferenceMember cm-mode-bits parent -- */ mtMemberMovedEvent = 14, /* -- MTConferenceMember -- -- -- */ mtMessageArrivedEvent = 15, /* -- MTConferenceMember message-version message-type message-handle */ mtPhoneRingingEvent = 16, /* -- MTConferenceMember cm-mode-bits -- -- */ mtConferenceReadyEvent = 21, /* -- MTConferenceToken mode-bits -- -- */ mtConferenceTerminatedEvent = 22, /* -- MTConferenceToken MTController -- -- */ mtAuxiliaryTerminatedEvent = 23, /* -- MTAuxiliaryToken MTController -- -- */ mtConferenceNameChangedEvent = 24, /* -- MTConferenceToken -- -- -- */ mtMemberReadyEvent = 31, /* -- MTConferenceMember mode-bits -- -- */ mtMemberTerminatedEvent = 32, /* -- MTConferenceMember MTController -- -- */ mtRefusedEvent = 33, /* response MTConferenceMember -- -- -- */ mtFailedEvent = 34, /* error-code MTConferenceMember -- -- -- */ mtSnapshotTakenEvent = 41, /* -- CM/CT/0 MTController -- pic-handle */ mtMovieRecordedEvent = 42 /* -- CM/CT/0 MTController -- fsspec-handle */ }; typedef short MTConferenceEventType; /*----------------------------------------- Conference event structure -----------------------------------------*/ struct MTConferenceEvent { MTConferenceEventType what; OSErr err; long who; long bonus; long reserved; Handle surprise; }; typedef struct MTConferenceEvent MTConferenceEvent, *MTConferenceEventPtr; /*----------------------------------------- Conference capability types -----------------------------------------*/ enum { mtMessageOptionalCapability = 'O', mtMessageDesiredCapability = 'D', mtMessageRequiredCapability = 'R', mtNegotiationMessageCapability = 'N' }; typedef char MTConferenceCapabilityType; /*----------------------------------------- Conference capabilities structure -----------------------------------------*/ struct MTCapabilitiesEntry { OSType messageType; unsigned char version; MTConferenceCapabilityType desires; short reserved; }; typedef struct MTCapabilitiesEntry MTCapabilitiesEntry, *MTCapabilitiesPtr; struct MTCapabilitiesList { UInt32 count; MTCapabilitiesEntry capability[kMTVariableLengthArray]; /* really count entries */ }; typedef struct MTCapabilitiesList MTCapabilitiesList, *MTCapabilitiesListPtr, **MTCapabilitiesHandle; /*----------------------------------------- Conference selectors -----------------------------------------*/ enum { kMTConferenceListenSelect = 1, kMTConferenceTerminateSelect = 2, kMTConferenceCallSelect = 3, kMTConferenceReplySelect = 4, kMTConferenceMergeSelect = 5, kMTConferenceDetachMemberSelect = 6, kMTConferenceGetNextEventSelect = 7, kMTConferenceGetMemberNameSelect = 8, kMTConferenceGetMemberConferenceSelect = 9, kMTConferenceGetReturnAddressSelect = 10, kMTConferenceGetRegisteredNamesSelect = 11, kMTConferenceGetConferenceNameSelect = 12, kMTConferenceActivateConferenceSelect = 13, kMTConferenceActivateMemberSelect = 14, kMTConferenceSendMessageToConferenceSelect = 15, kMTConferenceSendMessageToMemberSelect = 16, kMTConferenceSetModeSelect = 17, kMTConferenceSetCallTimeoutSelect = 18, kMTConferenceSetDefaultWindowProcIDSelect = 19, kMTConferenceSetDefaultActionFilterSelect = 20, kMTConferenceSetPreparationDefaultsSelect = 21, kMTConferenceNewPreparedControllerSelect = 22, kMTConferenceDisposeControllerSelect = 23, kMTConferenceSetMessageCapabilitiesSelect = 24, kMTConferenceGetMemberMessageCapabilitiesSelect = 25, kMTConferenceAttachAuxiliarySourceSelect = 26, kMTConferenceDetachAuxiliarySourceSelect = 27, kMTConferenceNameFromRStringSelect = 28, kMTConferenceRStringFromNameSelect = 29 }; /*----------------------------------------- Conference prototypes -----------------------------------------*/ extern pascal ComponentResult MTConferenceListen(MTConferenceComponent cc, MTCString63 userName, MTCString32 serviceName, MTCString serviceTypesList) FIVEWORDINLINE(0x2F3C, 12, 1, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceTerminate(MTConferenceComponent cc, MTConferenceToken theConference) FIVEWORDINLINE(0x2F3C, 4, 2, 0x7000, 0xA82A); extern pascal MTConferenceMember MTConferenceCall(MTConferenceComponent cc, MTCString63 confName, MTNamePtr whoToCall) FIVEWORDINLINE(0x2F3C, 8, 3, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceReply(MTConferenceComponent cc, MTConferenceMember callingParty, OSErr response) FIVEWORDINLINE(0x2F3C, 6, 4, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceMerge(MTConferenceComponent cc, MTConferenceToken staysAround, MTConferenceToken goesAway) FIVEWORDINLINE(0x2F3C, 8, 5, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceDetachMember(MTConferenceComponent cc, MTConferenceMember theMember) FIVEWORDINLINE(0x2F3C, 4, 6, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceGetNextEvent(MTConferenceComponent cc, MTConferenceEventPtr theEvent) FIVEWORDINLINE(0x2F3C, 4, 7, 0x7000, 0xA82A); extern pascal MTCString MTConferenceGetMemberName(MTConferenceComponent cc, MTConferenceMember theMember) FIVEWORDINLINE(0x2F3C, 4, 8, 0x7000, 0xA82A); extern pascal MTConferenceToken MTConferenceGetMemberConference(MTConferenceComponent cc, MTConferenceMember theMember) FIVEWORDINLINE(0x2F3C, 4, 9, 0x7000, 0xA82A); extern pascal MTNameListPtr MTConferenceGetReturnAddress(MTConferenceComponent cc, MTConferenceMember theMember) FIVEWORDINLINE(0x2F3C, 4, 10, 0x7000, 0xA82A); extern pascal MTNameListPtr MTConferenceGetRegisteredNames(MTConferenceComponent cc) FIVEWORDINLINE(0x2F3C, 0, 11, 0x7000, 0xA82A); extern pascal MTCString MTConferenceGetConferenceName(MTConferenceComponent cc, MTConferenceToken theConference) FIVEWORDINLINE(0x2F3C, 4, 12, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceActivateConference(MTConferenceComponent cc, MTConferenceToken theConference, MTControllerComponent selfController) FIVEWORDINLINE(0x2F3C, 8, 13, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceActivateMember(MTConferenceComponent cc, MTConferenceMember theMember, MTControllerComponent memberController) FIVEWORDINLINE(0x2F3C, 8, 14, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSendMessageToConference(MTConferenceComponent cc, MTConferenceToken theConference, Handle theMessage, OSType messageType, short version) FIVEWORDINLINE(0x2F3C, 14, 15, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSendMessageToMember(MTConferenceComponent cc, MTConferenceMember theMember, Handle theMessage, OSType messageType, short version) FIVEWORDINLINE(0x2F3C, 14, 16, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetMode(MTConferenceComponent cc, MTConferenceModeFlags defaultMode) FIVEWORDINLINE(0x2F3C, 2, 17, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetCallTimeout(MTConferenceComponent cc, short callTimeout) FIVEWORDINLINE(0x2F3C, 2, 18, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetDefaultWindowProcID(MTConferenceComponent cc, short windowProcID) FIVEWORDINLINE(0x2F3C, 2, 19, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetDefaultActionFilter(MTConferenceComponent cc, MTControllerActionFilterUPP actionProc, long actionRefcon) FIVEWORDINLINE(0x2F3C, 8, 20, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetPreparationDefaults(MTConferenceComponent cc, OSType controllerSubtype, OSType compressorSubtype, OSType sourceDirectorSubtype, OSType sinkDirectorSubtype, OSType recorderSubtype) FIVEWORDINLINE(0x2F3C, 20, 21, 0x7000, 0xA82A); extern pascal MTControllerComponent MTConferenceNewPreparedController(MTConferenceComponent cc, const Rect *windowRect, MTConferencePrepFlags prepFlags, MTCString windowTitle) FIVEWORDINLINE(0x2F3C, 12, 22, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceDisposeController(MTConferenceComponent cc, MTControllerComponent controller) FIVEWORDINLINE(0x2F3C, 4, 23, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceSetMessageCapabilities(MTConferenceComponent cc, MTCapabilitiesHandle myCapabilities) FIVEWORDINLINE(0x2F3C, 4, 24, 0x7000, 0xA82A); extern pascal MTCapabilitiesHandle MTConferenceGetMemberMessageCapabilities(MTConferenceComponent cc, MTConferenceMember theMember) FIVEWORDINLINE(0x2F3C, 4, 25, 0x7000, 0xA82A); extern pascal MTAuxiliaryToken MTConferenceAttachAuxiliarySource(MTConferenceComponent cc, MTConferenceToken theConference, MTControllerComponent controller, MTCString63 auxName) FIVEWORDINLINE(0x2F3C, 12, 26, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceDetachAuxiliarySource(MTConferenceComponent cc, MTAuxiliaryToken theAuxiliary) FIVEWORDINLINE(0x2F3C, 4, 27, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceNameFromRString(MTConferenceComponent cc, MTCString63 name, MTRString60Ptr rString) FIVEWORDINLINE(0x2F3C, 8, 28, 0x7000, 0xA82A); extern pascal ComponentResult MTConferenceRStringFromName(MTConferenceComponent cc, MTRString60Ptr rString, MTCString63 name) FIVEWORDINLINE(0x2F3C, 8, 29, 0x7000, 0xA82A); enum { kMTOpenConnectionMessageType = 'opnc', kMTCloseConnectionMessageType = 'clsc', kMTConnectedMessageType = 'sdcn', kMTOpenChannelMessageType = 'ochn', kMTOpenStreamMessageType = 'ostm', kMTAcknowledgeMessageType = 'ack!', kMTStreamPayloadMessageType = 'strm', kMTKeepAliveMessageType = 'keep' }; /*----------------------------------------- MovieTalk open connection message -----------------------------------------*/ typedef UInt32 MTProtocolVersion; struct MTOpenConnectionMessage { MTStandardID msgType; /* set to kMTOpenConnectionMessageType */ MTMessageSize msgSize; /* size of entire message */ MTProtocolVersion protocolVersion; /* of the MovieTalk protocol */ MTAddress address; /* MovieTalk address */ }; typedef struct MTOpenConnectionMessage MTOpenConnectionMessage, *MTOpenConnectionMessagePtr; /*----------------------------------------- MovieTalk close connection message -----------------------------------------*/ struct MTCloseConnectionMessage { MTStandardID msgType; /* set to kMTCloseConnectionMessageType */ MTMessageSize msgSize; /* size of entire message */ }; typedef struct MTCloseConnectionMessage MTCloseConnectionMessage, *MTCloseConnectionMessagePtr; /*----------------------------------------- MovieTalk ready connection message -----------------------------------------*/ struct MTConnectedMessage { MTStandardID msgType; /* set to kMTConnectedMessageType */ MTMessageSize msgSize; /* size of entire message */ }; typedef struct MTConnectedMessage MTConnectedMessage, *MTConnectedMessagePtr; /*----------------------------------------- MovieTalk open channel message -----------------------------------------*/ struct MTOpenChannelMessage { MTStandardID msgType; /* set to kMTOpenChannelMessageType */ MTMessageSize msgSize; /* size of entire message */ MTStreamCount numStreams; MTStreamID streamID[kMTVariableLengthArray]; /* minimum size zero */ }; typedef struct MTOpenChannelMessage MTOpenChannelMessage, *MTOpenChannelMessagePtr; /*----------------------------------------- MovieTalk open stream message -----------------------------------------*/ struct MTOpenStreamMessage { MTStandardID msgType; /* set to kMTOpenStreamMessageType */ MTMessageSize msgSize; /* size of entire message */ MTStreamType streamType; MTStreamID streamID; MTStreamReference streamReference; TimeScale streamTimeScale; /* the rest of the payload is a SampleDescription */ }; typedef struct MTOpenStreamMessage MTOpenStreamMessage, *MTOpenStreamMessagePtr; /*----------------------------------------- MovieTalk acknowledge message -----------------------------------------*/ struct MTAcknowledgeMessage { MTStandardID msgType; /* set to kMTAcknowledgeMessageType */ MTMessageSize msgSize; /* size of entire message */ MTStandardID ackMessageType; /* type of message being acknowledged */ MTMessageSize ackErrorCode; /* error code of message being acknowledged */ MTMessageSize ackID; /* optional identifier tag for message */ }; typedef struct MTAcknowledgeMessage MTAcknowledgeMessage, *MTAcknowledgeMessagePtr; /*----------------------------------------- MovieTalk stream payload message -----------------------------------------*/ enum { kMTStreamSequenceLast = 0x8000, kMTStreamSequenceMask = 0x7FFF }; typedef UInt16 MTStreamSequence; struct MTStreamPayloadMessage { MTStandardID msgType; /* set to kMTStreamPayloadMessageType */ MTMessageSize msgSize; /* size of entire message */ MTChunkTime streamTime; MTStreamID streamID; MTChunkPriority streamPriority; MTStreamOptions streamOptions; MTMessageSize streamChunkSize; MTSequenceNum packetNumber; MTSequenceNum frameNumber; MTStreamSequence streamSequenceNum; }; typedef struct MTStreamPayloadMessage MTStreamPayloadMessage, *MTStreamPayloadMessagePtr; /*----------------------------------------- MovieTalk keep alive message -----------------------------------------*/ typedef UInt32 MTAliveOptions; enum { mtReverseChannelAddressOption = 0x00000040 }; struct MTKeepAliveMessage { MTStandardID msgType; /* set to kMTKeepAliveMessageType */ MTMessageSize msgSize; /* size of entire message */ MTProtocolVersion protocolVersion; /* of the MovieTalk protocol */ MTAliveOptions aliveOptions; }; typedef struct MTKeepAliveMessage MTKeepAliveMessage, *MTKeepAliveMessagePtr; #ifdef __CFM68K__ #pragma lib_export off #endif #if GENERATINGPOWERPC #pragma options align=reset #endif #ifdef __cplusplus } #endif #endif /* __QUICKTIMECONFERENCING__ */